home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 12 / Cream of the Crop 12 (Part II) / Cream of the Crop 12 (Part II).iso / BBS / TAG2MAX.ZIP / TAG.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-24  |  47.5 KB  |  1,154 lines

  1. // T.A.G. Bulletin Board System
  2. // Copyright (c) 1986-1994 by The T.A.G. Team
  3. // All rights reserved.
  4. //
  5. //                    ----------------------------------
  6. //                    T.A.G. Version 2.7 Data Structures
  7. //                    ----------------------------------
  8. //             Converted from Turbo Pascal to C by Martin Pollard
  9. //
  10. // All we ask if you use these record structures is to give credit where
  11. // credit is due.
  12. //
  13. // Additional structure information may be given out on an individual
  14. // basis depending on the situation.
  15. //
  16. // RELEASE HISTORY:
  17. //
  18. // 01/24/93 - Initial release.
  19. // 02/17/93 - Corrected errors in definitions for SystatRec, ModemRec, and
  20. //            MboardType.
  21. // 04/27/93 - Re-Released without change for version 2.6e (Paul Williams)
  22. // 09/01/93 - Updated for version 2.6f (Victor Capton)
  23. // 05/09/94 - Updated for version 2.7 (Victor Capton)
  24. // 10/01/94 - Modified for 32-bit DOSX programming (Mike Owen)
  25.  
  26. #ifndef __TAGREC_H      // Prevents header from being included
  27. #define __TAGREC_H      // twice in the same program or module
  28.  
  29. #ifdef __cplusplus
  30. extern "C" {
  31. #endif
  32.  
  33. typedef unsigned char Boolean;  // C equivalent for TP "boolean" type
  34.                                 // (0 is FALSE, non-0 is TRUE)
  35. typedef unsigned char Byte;     // C equivalent for TP "byte" type
  36. typedef unsigned char Char;     // C equivalent for TP "char" type
  37.                                 // (ensures values in 0..255 range)
  38. typedef short Integer;          // C equivalent for TP "integer" type
  39. typedef long Longint;           // C equivalent for TP "longint" type
  40. typedef unsigned short Word;    // C equivalent for TP "word" type
  41.  
  42. typedef unsigned char Real[6];  // C has no equivalent for TP "real" type!
  43.  
  44. typedef unsigned short Bit;     // shorthand operator for bit fields
  45.                                 // (ensures returning positive values)
  46.  
  47. // The following values are used by the system for user fields
  48. // "ask"  values will be asked of the user the next time they logon if the
  49. //        question is part of the new user logon
  50. // "none" values are normally for optional fields where the user simply
  51. //        pressed <enter>
  52.  
  53. #define USER_STRING_ASK     " "     // Ask for user string fields
  54. #define USER_STRING_NONE    ""      // None for user string fields
  55. #define USER_DATE_ASK       0xFE21  // Ask for user date fields - 1/1/2027
  56. #define USER_DATE_NONE      0x0021  // None for user date fields - 1/1/0
  57. #define USER_WORD_ASK       65535U  // Ask for user word fields
  58. #define USER_WORD_NONE      65534U  // None for user word fields
  59. #define USER_CHAR_ASK       '~'     // Ask for user character fields
  60. #define USER_CHAR_NONE      ' '     // None for user character fields
  61. #define USER_PHONE_ASK      " "     // Ask for user phone fields
  62. #define USER_PHONE_NONE     ""      // None for user phone fields
  63.  
  64.  
  65. #define DYN_DEFAULT     0           // Default
  66. #define DYN_YES         1           // Yes
  67. #define DYN_NO          2           // No
  68.  
  69. typedef Byte DefaultYesNoType;     // Default/yes/no type
  70.  
  71. typedef Char ArFlagType;        // AR flags (@..Z)
  72. typedef Byte ArFlagset[4];      // Set of AR flags
  73.                                 // Byte 0 = bits 0..7 = Flags @..G
  74.                                 // Byte 1 = bits 0..7 = Flags H..O
  75.                                 // Byte 2 = bits 0..7 = Flags P..W
  76.                                 // Byte 3 = bits 0..2 = Flags X..Z
  77.  
  78. typedef struct      // User special flags
  79. {
  80.     unsigned char
  81.         AutoPrivDel : 1,    // A = Force user to delete private mail
  82.         NoPostCall : 1,     // B = No post call ratio
  83.         ForceULScan : 1,    // C = Force this user to automatically scan
  84.                             //     when uploading
  85.         Ranon : 1,          // D = Restrict from posting anonymous
  86.         RbbsList : 1,       // E = Restrict from adding to other BBS list
  87.         Rchat : 1,          // F = Restrict from chatting
  88.         NoDLlimit : 1,      // G = No download ratio limit
  89.         RpubMsg : 1;        // H = Restrict from posting public mail
  90.     unsigned char
  91.         RprivMsg : 1,       // I = Restrict from sending private mail
  92.         Rvoting : 1,        // J = Restrict from voting
  93.         OneCall : 1,        // K = One call per day allowed
  94.         PubNotVal : 1,      // L = Public posts are not validated
  95.         ProtDel : 1,        // M = Protect from deletion
  96.         NoFilePts : 1,      // N = No file point checks
  97.         RfileVal : 1,       // O = Credit from upload on validation
  98.         Pause : 1;          // P = [PAUSE] active
  99.     unsigned char
  100.         Ansi : 1,           // Q = ANSI graphics active
  101.         Color : 1,          // R = Color active if ANSI present
  102.         OneKey : 1,         // S = Onekey input used instead of line input
  103.         Alert : 1,          // T = Alert active from user's next call
  104.         FlagRecUnused : 1,  // U = Unused
  105.         MboxClosed : 1,     // V = Mail box closed to all but SysOp's
  106.         Tabs : 1,           // W = VT100 tabs are used to optimize display
  107.         ClsChar : 1;        // X = Clear screen characters used
  108. }
  109. FlagSet;    // 3 bytes used for 24 flags in set
  110.  
  111. typedef struct
  112. {
  113.     unsigned char
  114.         IsCdRom : 1,
  115.         uuUlRecFlag1 : 1,
  116.         uuUlRecFlag2 : 1,
  117.         uuUlRecFlag3 : 1,
  118.         uuUlRecFlag4 : 1,
  119.         uuUlRecFlag5 : 1,
  120.         uuUlRecFlag6 : 1,
  121.         uuUlRecFlag7 : 1;
  122.  
  123. } UlRecFlagSet;
  124.  
  125.  
  126. typedef struct      // User configuration flags
  127. {
  128.     unsigned char
  129.         UseCustomMenus : 1,          // A = Allow custom ANSI menus
  130.         ClsMsgRead : 1,              // B = Clear screen between reading messages
  131.         DoNotDisturbUser : 1,        // C = Do not disturb user (multi-user only)
  132.         LogonScanAllMsgSections : 1, // D = Scan all msg sections at logon for mail
  133.         QWKNewBulletins : 1,         // E = Put new bulletins in QWK packet
  134.         QWKNewFiles : 1,             // F = Put new files list in QWK packet
  135.         uuCFFlag18 : 1,              // G = Reserved
  136.         uuCFFlag17 : 1;              // H = Reserved
  137.     unsigned char
  138.         uuCFFlag16 : 1,              // I = Reserved
  139.         uuCFFlag15 : 1,              // J = Reserved
  140.         uuCFFlag14 : 1,              // K = Reserved
  141.         uuCFFlag13 : 1,              // L = Reserved
  142.         uuCFFlag12 : 1,              // M = Reserved
  143.         uuCFFlag11 : 1,              // N = Reserved
  144.         uuCFFlag10 : 1,              // O = Reserved
  145.         uuCFFlag9 : 1;               // P = Reserved
  146.     unsigned char
  147.         uuCFFlag8 : 1,               // Q = Reserved
  148.         uuCFFlag7 : 1,               // R = Reserved
  149.         uuCFFlag6 : 1,               // S = Reserved
  150.         uuCFFlag5 : 1,               // T = Reserved
  151.         uuCFFlag4 : 1,               // U = Reserved
  152.         uuCFFlag3 : 1,               // V = Reserved
  153.         uuCFFlag2 : 1,               // W = Reserved
  154.         uuCFFlag1 : 1;               // X = Reserved
  155. }
  156. ConfigFlagSet;      // 3 bytes used for 24 flags in set
  157.  
  158.  
  159. // ColorRec = Array of B&W / Color  Color Bytes
  160.  
  161. typedef Byte ColorRec[2][10];   // ColorRec[0][x] = B&W
  162.                                 // ColorRec[1][x] = Color
  163.                                 // x = 0..9 = Actual Color Codes
  164.  
  165. typedef struct      // User name index - NAMES.LST
  166. {
  167.     Char Name[37];      // User name
  168.     Integer Number;     // User number
  169. }
  170. SmalRec;
  171.  
  172. typedef struct      // User log - USER.LST
  173. {
  174.     Char Uname[37];             // User name
  175.     Char Rname[37];             // Real name
  176.     Char ADDR[31];              // Address
  177.     Char ComType[31];           // Computer type
  178.     Char CityState[31];         // City/State
  179.     Char Snote[31];             // SysOp note
  180.  
  181.     Word LastDate;              // Last date on - Semi-MS-DOS 1900 based fmt
  182.     Word LastTime;              // Last time on - MS-DOS format
  183.  
  184.     Char PW[17];                // Password
  185.     Char Phone[13];             // Phone number 1
  186.     Char Zcode[11];             // Zip code
  187.     Char Phone2[13];            // Phone number 2
  188.  
  189.     Char ExtraStr1[41];         // Extra string 1
  190.     Char ExtraStr2[41];         // Extra string 2
  191.     Char ExtraStr3[41];         // Extra string 3
  192.  
  193.     Word ExtraDate1;            // Extra date 1 - Semi-MS-DOS 1900 based fmt
  194.     Word ExtraDate2;            // Extra date 2 - Semi-MS-DOS 1900 based fmt
  195.  
  196.     Word ExtraWord1;            // Extra word 1
  197.     Word ExtraWord2;            // Extra word 2
  198.     Word ExtraWord3;            // Extra word 3
  199.     Word ExtraWord4;            // Extra word 4
  200.  
  201.     Char ExtraChar1;            // Extra character 1
  202.     Char ExtraChar2;            // Extra character 2
  203.     Char ExtraChar3;            // Extra character 3
  204.     Char ExtraChar4;            // Extra character 4
  205.  
  206.     Char ExtraPhone[13];        // Extra phone
  207.  
  208.     Byte uureserved[3];         // Reserved
  209.  
  210.     // Vote  = An array of Voting Answers, One for each question
  211.     Byte Vote[20];              // Voting
  212.  
  213.     // Call spread for last 15 calls - Number  of days between each call:
  214.     // 0      = Called the same day
  215.     // 1..253 = X number of days between
  216.     // 254    = 254 or more days between
  217.     // 255    = Element not used yet
  218.     Byte CallSpr[15];           // Call spread
  219.  
  220.     Real Ttimeon;               // Total time on system in minutes
  221.     Real UlK;                   // UL K-Bytes
  222.     Real Dlk;                   // DL K-Bytes
  223.  
  224.     // UserNum = The User number
  225.     //           0  -----------------------------> Deleted
  226.     //           Same as Record Number ----------> Normal
  227.     //           Different from Record Number ---> Locked Out
  228.     Integer UserNum;            // User number
  229.  
  230.     Word PrivPost;              // Private posts
  231.     Word PubPost;               // Public posts
  232.     Word FeedBack;              // Feedback sent to SysOp
  233.     Word NumCalls;              // Total number of calls to system
  234.     Word NumUL;                 // Number of uploads
  235.     Word NumDL;                 // Number of downloads
  236.  
  237.     // Fmail = Status of Mail Forwarding
  238.     //           0  --------> Forwarding inactive
  239.     //           Other  ----> User Number to forward mail to
  240.     Integer Fmail;              // Forward mail to which user number
  241.  
  242.     Word Hbaud;                 // Highest baud rate user supports
  243.     Word TimeToday;             // Minutes on system date of last call
  244.     Word Credit;                // Credit for mail in cents
  245.     Word Debit;                 // Debit for mail in cents
  246.     Word Points;                // File points
  247.     Word TimeBank;              // Minutes in time bank
  248.     Word Bday;                  // Birthdate of user - Semi-MS-DOS format
  249.     Word LastChange;            // Reserved
  250.  
  251.     Byte StrtMenu;              // Reserved
  252.     Byte SL;                    // Security level - SL
  253.     Byte DSL;                   // Download security level - DSL
  254.     Byte Hlvl;                  // Help level
  255.     Byte Colms;                 // Number of screen columns
  256.     Byte Lines;                 // Number of screen lines
  257.     Byte Callstoday;            // Number of calls to system today
  258.     Byte Illegal;               // Illegal logon attempts
  259.  
  260.     Char Gender;                // User gender M/F/' '=not specified
  261.  
  262.     Byte uulMsgBase;            // Reserved
  263.     Byte uuLdlBase;             // Reserved
  264.     Byte Cls;                   // Reserved
  265.  
  266.     DefaultYesNoType FullEdit;  // Full screen editor status
  267.  
  268.     ArFlagset Ar;               // AR flag set
  269.  
  270.     FlagSet Flags;              // Special flag set
  271.  
  272.     Word FirstOn;               // Date first on - Semi-MS-DOS format
  273.     Word Expires;               // Date expires - Semi-MS-DOS format
  274.  
  275.     Byte UserRecUnused[29];     // Reserved
  276.  
  277.     ColorRec Colors;            // User colors
  278.  
  279.     Byte TBdeposit;             // Time deposited in bank today
  280.     Byte TBwithdraw;            // Time withdraw from bank today
  281.  
  282.     Integer AdjTime;            // Adjusted time date of last call
  283.  
  284.     ConfigFlagSet ConfigFlags;  // Configuration Flags
  285.  
  286.     Word lMbase;                // Last message section
  287.     Word lFbase;                // Last file section
  288.  
  289.     Longint LastQWKCRC;         // CRC of last QWK .REP packet uploaded
  290.  
  291.     Byte Unused;                // Reserved
  292. }
  293. UserRec;
  294.  
  295.  
  296. typedef struct      // Short messages - SHORTMSG.DAT
  297. {
  298.     Char Msg[161];      // Message text
  299.     Integer Destin;     // User number of who message is to
  300. }
  301. SmallMessageRec;
  302.  
  303.  
  304. typedef struct      // Voting questions - VOTING.DAT
  305. {
  306.     Char Question[75];      // Question
  307.     Word NumA;              // Number of answers in below array
  308.     struct                  // Array of answer data
  309.     {
  310.         Char Ans[41];       // Answer
  311.         Word NumRes;        // Number of users who chose this response
  312.     }
  313.     Answ[10];
  314. }
  315. Vdatar;
  316.  
  317.  
  318. typedef struct      // File section - FBOARDS.DAT
  319. {
  320.     Char Name[40];          // Section name 26 Real Len, Rest Colors
  321.     Char Filename[9];       // Listing filename (does not include ".DIR")
  322.                             //   If UL and DL paths are different,
  323.                             //     filename for upload section is "FILES"
  324.                             //   If first character is "@" then *.DIR file
  325.                             //     is found in main data files directory
  326.     Char DlPathname[31];    // Download pathname
  327.     Char UlPathName[31];    // Upload pathname
  328.     Char Password[16];      // Password required
  329.     UlRecFlagSet Flags;
  330.     Byte DSL;               // DSL required
  331.     Byte SeeNames;          // DSL required to see uploader names
  332.     ArFlagType ArLvl;       // AR flag required
  333.     Byte NoRatioGroupNum;   // Bit 0    = Ratio disabled
  334.                             // Bits 1-7 = Group number
  335. }
  336. UlRec;
  337.  
  338.  
  339. typedef struct      // Set of file flags
  340. {
  341.     unsigned char
  342.         NotValidated : 1,       // File is not validated
  343.         OwnerRestricted : 1,    // Uploader did not receive credit on upload
  344.         uuF6 : 1,               // Reserved
  345.         uuF5 : 1,               // Reserved
  346.         uuF4 : 1,               // Reserved
  347.         uuF3 : 1,               // Reserved
  348.         uuF2 : 1,               // Reserved
  349.         uuF1 : 1;               // Reserved
  350. }
  351. FlagRecSet;     // 1 byte used for 8 flags in set
  352.  
  353. typedef struct      // File listing - *.DIR
  354. {
  355.     Char Filename[13];      // File name
  356.     Char Description[79];   // Description
  357.     Word Nacc;              // Number of times file downloaded
  358.     Byte Unused;            // Reserved
  359.     Word Blocks;            // Number of 128 byte blocks in file
  360.     Char Owner[37];         // Uploader of file
  361.     Char Date[9];           // Date file uploaded
  362.     Word DateN;             // Date uploaded in days since Jan 1, 1985
  363.     FlagRecSet Flag;        // File status
  364.     Byte Points;            // File points
  365. }
  366. UlfRec;
  367.  
  368.  
  369. #define NUMSHELLFILES       13  // # currently defined internal shell files
  370.  
  371. typedef struct
  372. {
  373.     DefaultYesNoType useswap;   // Swap shell setting
  374. //  struct                      // Shell file flags
  375. //  {
  376. //      Bit shellshowcall : 1;
  377. //      Bit shelllogcall : 1;
  378. //  }
  379. //  flags;
  380.     char flags;
  381. }
  382. shellfilerec;
  383.  
  384. typedef shellfilerec                    // Array of shell files
  385.         shellfilelist[NUMSHELLFILES];
  386.  
  387. #define NUMNEWUSERQUESTS    29  // Number of current new user questions
  388.  
  389. typedef struct
  390. {
  391.     Byte itemnum;       // Item number to ask or 0=inactive
  392.     Boolean required;   // Required/optional
  393. }
  394. newuserquestrec;
  395.  
  396. typedef newuserquestrec                         // Array of new
  397.         newuserquestlist[NUMNEWUSERQUESTS];     // user questions
  398.  
  399. typedef Word Range[256];    // Range of values for all security levels
  400.  
  401. // Provide for full 4D awareness (And point support)
  402.  
  403. typedef struct      // Fidonet Style Address (23 Bytes)
  404. {
  405.     Word Zone;          // Zone, 1   = N. America
  406.     Word Net;           // Net,  120 = SE Michigan
  407.     Word Node;          // Node, 116 = CRIMP BBS
  408.     Word Point;         // Point, 99% of the time = 0
  409.     Char Domain[16];    // As in FIDONET
  410. }
  411. AddressType;
  412.  
  413.  
  414. typedef struct      // System status - STATUS.DAT
  415. {
  416.     Char AltPath[41];           // Alternate file path
  417.     Char DictPath[41];          // Dictionary path
  418.  
  419.     Byte DefReadMsgMenu;        // Wait screen read message menu
  420.  
  421.     Boolean dynamicmsg;         // Dynamic message numbering active
  422.     Boolean dynamicfile;        // Dynamic file numbering active
  423.     Boolean waitscreendisable;  // Wait screen activity disable
  424.     Boolean requiredvoting;     // Require voting when user logs on
  425.  
  426.     Byte automsglines;          // Auto message number of lines
  427.     Byte uunewuserexpdays;      // Reserved
  428.     Byte addwordsl;             // Add word to dictionary SL
  429.  
  430.     Char expvalkey;             // User expired validation key (#13=None)
  431.  
  432.     Byte expwarning;            // # of days to give warning before expires
  433.     Byte modifymailflags;       // Sl when allowed to modify mail flags
  434.     Byte netmailfilerequest;    // SL for NetMail file requests
  435.     Byte netmailfileattach;     // SL for NetMail file attach
  436.  
  437.     Boolean ModemDebug;         // Modem debug information written to log
  438.     Boolean UseXMS;             // Use XMS memory for swap shell
  439.     Boolean ShowFilesOpen;      // Show Files Open on Top Screen
  440.     Boolean LocalSysopWindow;   // SysOp window when on locally
  441.     Boolean AllowSuperFast;     // Allow SHIFT password override
  442.     Boolean WaitSend;           // FOSSIL buffer inactive
  443.     Boolean OverlayEMS;         // Attempt EMS of overlays
  444.     Boolean EMSOverXMS;         // Use EMS over XMS memory for swap
  445.     Boolean DirectScreen;       // Direct screen writes
  446.     Boolean UseEMS;             // Use EMS memory for swap shell
  447.     Boolean useswap;            // Use swap shell
  448.     Boolean UseFossil;          // Use FOSSIL driver
  449.     Boolean SnowCheck;          // Snow checking active
  450.  
  451.     Byte BrowseDSL;             // DSL to have U/D commands on
  452.                                 //   File Browse Menu
  453.  
  454.     Char BbsID[9];              // !2.6f - ID used for Qwk Packets
  455.  
  456.     Char TempDlPath[41];        // Temp File Download Path
  457.  
  458.     Word MinKpost;              // Minimum K-Bytes to post
  459.     Word MinKul;                // Minimum K-Bytes to upload
  460.  
  461.     Boolean AutoChatBufOpen;    // Auto chat buffer open
  462.  
  463.     Char nettype[21];           // Multi-user network type
  464.  
  465.     Byte uusystatrec2[15];      // Reserved
  466.  
  467.     Byte LogonPassword;         // SL when SysOp PW #1 needed to logon
  468.     Byte ReadTextMsg;           // SL when allowed to use /READ command
  469.  
  470.     Boolean AlertChatOnly;      // Alert active only when chat on
  471.     Boolean genericinfo;        // Generic mode active
  472.     Boolean LogonPhone;         // Logon requires phone number
  473.  
  474.     Char DefMsgGroup[21];       // Default msg section group mask
  475.     Char DefFileGroup[21];      // Default file section group mask
  476.  
  477.     Word MaxQWKMsgsSection;     // Maximum QWK messages allowed per section
  478.     Word MaxQWKMsgsTotal;       // Maximum QWK messages allowed total
  479.  
  480.     Byte uusystatrec3[9];       // Reserved
  481.  
  482.     Char LastCaller[43];        // Name and number of last caller
  483.  
  484.     Char MenuFastKeys[21];      // Menu fast keys (e.g. "/")
  485.  
  486.     Char BoardPW[17];           // New user password (Null=None)
  487.     Char BoardPhone[13];        // Board phone number
  488.  
  489.     Byte SysopColor;            // Chat SysOp color
  490.     Byte UserColor;             // Chat user color
  491.  
  492.     ArFlagType PostCallFlag;    // Post call ratio AR flag
  493.  
  494.     Byte NoPostCallChk;         // SL when post call ratio ignored
  495.     Byte ReinitTime;            // Minutes to re-init modem when no calls
  496.     Byte StartMenu;             // Starting menu for users
  497.  
  498.     Boolean UseAutoMsg;         // Display auto-message during logon
  499.     Boolean LogonOffHook;       // Take phone off-hook on local logon
  500.  
  501.     Byte NoPointChk;            // DSL when file points ignored
  502.  
  503.     Char LastDate[9];           // Date last user logged on
  504.  
  505.     AddressType Address;        // Zone/Net/Node/Point/Domain
  506.  
  507.     Boolean UserOn11x;          // Use USERON.BBS version 1.1x
  508.  
  509.     shellfilelist shellfile;    // Shell file information
  510.  
  511.     Byte uushellfile[10];       // Reserved for shell files
  512.  
  513.     newuserquestlist newuserquest; // New user question information
  514.  
  515.     Byte uunewuserquest[270];   // Reserved
  516.  
  517.     Byte ActiveModemRecNum;     // Active Modem Record Number
  518.  
  519.     Char MultiUserPath[41];     // Multi-user path
  520.  
  521.     Byte defusereditlist;       // Default user editor list mode
  522.                                 //   0=short, 1=normal, 2=extended, 3=info
  523.  
  524.     Byte uusystatrec5[10];      // Reserved
  525.  
  526.     Char GfilesPath[41];        // Main data files path
  527.  
  528.     Boolean StoreBadLogon;      // Store bad logon info in SysOp log
  529.  
  530.     Byte MaxBdNum;              // Maximum number of batch DL files
  531.     Byte MaxBuNum;              // Maximum number of batch UL files
  532.  
  533.     Char BoardName[49];         // Board name
  534.  
  535.     Byte SysopMenuSL;           // SL required for SysOp Control-Q menu
  536. //  ArFlagType SysopMenuAR;     // AR flag required from Control-Q menu
  537.     unsigned char SysopMenuAR;
  538.  
  539.     Char SysopName[37];         // SysOp name
  540.  
  541.     Char SwapPath[41];          // Swap shell path
  542.  
  543.     Char ChatPW[17];            // Chat password
  544.  
  545.     Char LastTAGVersion[21];    // Last version of TAG to run
  546.  
  547.     Char nodelistpath[41];      // Nodelist directory
  548.  
  549.     Char BoardCityState[33];    // !2.6f Board City, State for QWK Pkt
  550.  
  551.     Char QWKPath[41];           // !2.6f QWK Path
  552.  
  553.     Char RIPPath[41];           // RIP Path
  554.  
  555.     Byte uusystatrec6[2193];    // Reserved
  556.  
  557.     Char SysopPW[3][17];        // Array of SysOp passwords
  558.  
  559.     Byte uusystatrec7[120];     // Reserved
  560.  
  561.     Real CallerNum;             // Total number of calls to system
  562.     Real UlKtoday;              // K-Bytes uploaded today
  563.     Real DlkToday;              // K-Bytes downloaded today
  564.     Real uur1;                  // Reserved
  565.     Real uur2;                  // Reserved
  566.     Real uur3;                  // Reserved
  567.  
  568.     Word Users;                 // Number of active users
  569.     Word ActiveToday;           // Minutes active today
  570.     Word Callstoday;            // Calls today
  571.     Word MsgPostToday;          // Public messages posted today
  572.     Word EmailToday;            // Private messages posted today
  573.     Word FbackToday;            // Feedback sent to SysOp today
  574.     Word UlToday;               // Number of uploads today
  575.     Word uuw1;                  // Reserved
  576.     Word uuw2;                  // Reserved
  577.     Word uuw3;                  // Reserved
  578.     Word MaxUsers;              // Maximum users allowed to be active
  579.     Word ErrorsToday;           // Number of errors today
  580.     Word NusersToday;           // Number of new users today
  581.     Word DlToday;               // Number of downloads today
  582.  
  583.     Integer NewUserMsgTo;       // User number new user message sent to
  584.     Integer uui1;               // Reserved
  585.     Integer SysopMailTo;        // User number mail to "SYSOP" is sent to
  586.     Integer GuestUser;
  587.     Integer FailedLogonMsgTo;   // Guest user number (0=None)
  588.     Integer uuw5;               // Reserved
  589.     Integer UsageLogDays;       // Number of days to keep USAGE.LOG
  590.     Integer WaitMailUser;       // Mail waiting on wait screen (0=none)
  591.  
  592.     Byte UEditJumpSL;           // SL required for SysOp Control-U menu
  593.     ArFlagType UEditJumpAR;     // AR flag required from Control-U menu
  594.  
  595.     Byte NoviceDisplay;         // Number of calls to display novice msg
  596.  
  597.     Byte NodeNumber;            // Multi-user node number
  598.  
  599.     Boolean UEditJumpPassword;  // Use System pswd for Quick User Edit
  600.     Boolean ScanOnUploads;      // System permits forced scan on uploads
  601.  
  602.     Word MaxTimeInBank;         // Maximum minutes in time bank
  603.  
  604.     Boolean ShowGifRes;         // Show GIF resolution
  605.     Boolean CheckUploadSpace;   // Show upload drive space
  606.     Boolean SystemSecur;        // Full keyboard security active
  607.     Boolean MultiUser;          // Board in multi-user mode
  608.  
  609.     Byte TBmaxDeposit;          // Maximum daily time bank deposit
  610.     Byte TBmaxWithdraw;         // Maximum daily time bank withdraw
  611.     Byte SysopLvl;              // SL for SysOp
  612.     Byte CoSysopLvl;            // SL for CoSysOp
  613.     Byte uub1;                  // Reserved
  614.     Byte AddBbsLvl;             // SL for adding boards to bbs listing
  615.     Byte EmailLvl;              // SL for sending normal private mail
  616.     Byte uub2;                  // Reserved
  617.     Byte uub3;                  // Reserved
  618.     Byte SeeUnvalLvl;           // DSL for seeing unvalidated files
  619.     Byte DlCoSysopLvl;          // DSL for Download CoSysOp
  620.     Byte NoRatioChk;            // DSL for no ratio
  621.     Byte ReadAnon;              // SL to know see anonymous real name
  622.     Byte ReplyAnon;             // SL to reply to anonymous private mail
  623.     Byte PublicAnonAny;         // SL to post anonymous on any public base
  624.     Byte PrivateAnonAny;        // SL to send private anonymous mail
  625.     Byte MaxPublicCall;         // Maximum public posts per call
  626.     Byte MaxPrivCall;           // Maximum private messages per call
  627.     Byte MaxFbackCall;          // Maximum feedback to SysOp per call
  628.     Byte uub4;                  // Reserved 
  629.     Byte SeePasswords;          // SL to see user passwords remotely
  630.     Byte uub5;                  // Reserved
  631.     Byte uub6;                  // Reserved 
  632.     Byte ComPort;               // Communications port 
  633.     Byte TimeOut;               // Minutes for inactivity time-out 
  634.     Byte TimeOutBell;           // Minutes for inactivity bell
  635.     Byte Backlogdays;           // Number of days to keep SYSOP.LOG's 
  636.     Byte PrivilegeSL;           // Privilege SL
  637.     Byte PrivilegeDSL;          // Privilege DSL
  638.     Byte CDmask;                // Carrier detect mask
  639.     Byte MaxLogonTries;         // Maximum logon attempts per call
  640.     Byte uub7;                  // Reserved
  641.     Byte uub8;                  // Reserved
  642.     Byte UlTimePercent;         // UL time percent refund
  643.     Byte MaxChats;              // Maximum chat pages per call
  644.     Byte uub9;                  // Reserved
  645.     Byte TagLineSL;             // SL for tag line command
  646.  
  647.     Boolean ClosedSystem;       // System closed
  648.     Boolean TitlePause;         // Allow [PAUSE] on welcome screen
  649.     Boolean LogonBulletin;      // Logon to the bulletin section
  650.     Boolean BlankWait;          // Blank the wait screen if no activity
  651.     Boolean Handles;            // Allow handles
  652.     Boolean AutoANSIDetect;     // Logon auto-detect ANSI
  653.     Boolean SecureSystem;       // Keyboard security active
  654.     Boolean TimePerDay;         // Time limits represent time per day
  655.     Boolean Mailer;             // External mailer active
  656.     Boolean SysopFemale;        // SysOp is female
  657.     Boolean scantosysoplog;     // File scans are saved in SysOp log
  658.  
  659.     Range TimeAllowed;          // SL array of time per call/per day
  660.     Range UlDlNumRatio;         // DSL array of number of file UL ratios
  661.     Range UlDlKratio;           // DSL array of K-Byte UL ratios
  662.     Range CallsAllowed;         // SL array of calls allowed per day
  663.     Range PostCall;             // SL array of posts per 1/10 call
  664.  
  665.     Boolean AutoRIPDetect;      // Logon auto-detect RIP
  666.  
  667.     Byte uusystatrec8[7];       // Reserved
  668. }
  669. SystatRec;
  670.  
  671.  
  672. typedef struct      // Set of menu flags 
  673. {
  674.     Bit MenuOrCheck : 1,              // SL or AR - When off SL and AR
  675.         MenuTimeHelpDisplay : 1,      // Time/Help display
  676.         MenuBoardDisplayOverride : 1, // Board display override
  677.         MenuNamePrompt : 1,           // Menu name prompt
  678.         AscIIClearBeforeMenu : 1,     // ASCII Clear screen before printing menu
  679.         AnsiClearBeforeMenu : 1,      // ANSI Clear screen before printing menu
  680.         RipClearBeforeMenu : 1,       // RIP Clear screen before printing menu
  681.         UUMF9 : 1,                    // Reserved
  682.         UUMF8 : 1,                    // Reserved
  683.         UUMF7 : 1,                    // Reserved
  684.         UUMF6 : 1,                    // Reserved
  685.         UUMF5 : 1,                    // Reserved
  686.         UUMF4 : 1,                    // Reserved
  687.         UUMF3 : 1,                    // Reserved
  688.         UUMF2 : 1,                    // Reserved
  689.         UUMF1 : 1;                    // Reserved
  690. }
  691. MenuFlagSet;    // 2 bytes used for 16 flags in set
  692.  
  693. typedef struct      // Set of command flags
  694. {
  695.     Bit CmdOrCheck : 1,          // SL or AR - When off SL and AR
  696.         CmdHidden : 1,           // Hidden status
  697.         CmdLinkToNext : 1,       // Link to next
  698.         AscIIClearBeforeCmd : 1, // ASCII clean screen before command
  699.         AscIIPauseAfterCmd : 1,  // ASCII pause after command completed
  700.         AnsiClearBeforeCmd : 1,  // ANSI clean screen before command
  701.         AnsiPauseAfterCmd : 1,   // ANSI pause after command completed
  702.         RipClearBeforeCmd : 1,   // RIP clean screen before command
  703.         RipPauseAfterCmd : 1,    // RIP pause after command completed
  704.         AnsiOnly : 1,            // Command requires ANSI or RIP
  705.         RipOnly : 1,             // Command requires RIP
  706.         UUMF5 : 1,               // Reserved
  707.         UUMF4 : 1,               // Reserved
  708.         UUMF3 : 1,               // Reserved
  709.         UUMF2 : 1,               // Reserved
  710.         UUMF1 : 1;               // Reserved
  711. }
  712. CommandFlagSet;    // 2 bytes used for 16 flags in set
  713.  
  714. // Note: There is a serious bug in the release version for this header.
  715. // The struct below will work. Use the variant variable to determine if
  716. // the record is a MENU or a COMMAND. It is TRUE if it is a menu. - MJO
  717.  
  718. typedef struct      // Menus - MENUS.LST
  719. {
  720.     Char LongD[81];  // Menu description (menu) -or-
  721.                      // Long command desc (command)
  722.  
  723.     Byte SL;         // Security level (SL)
  724.     Byte DSL;        // Download security level (DSL)
  725.  
  726.     ArFlagset ArFlags; // AR flag set
  727.  
  728.     Byte UUMenu[10]; // Reserved
  729.  
  730.     Byte variant;       // TRUE if this record is a MENU, else a COMMAND
  731.  
  732.     union   // Menu or command - Variant section
  733.     {
  734.         struct      // Menu information
  735.         {
  736.             MenuFlagSet MenuFlags; // Menu flag set
  737.             Byte MenuNum;          // Menu number
  738.             Char mPrompt[49];      // Menu prompt unless MenuNamePrompt active
  739.             Char Password[17];     // Menu password
  740.             Byte FallBack;         // Fallback menu number
  741.             Char HelpFile[8];      // Help file ID name
  742.             Byte StartHelp;        // Starting help level 0=default
  743.             Byte Location;         // Menu location
  744.                                    //   (0=Main, 1=File, 2=ReadMessage)
  745.         }
  746.         vMenu;
  747.         struct      // Command information
  748.         {
  749.             CommandFlagSet CmdFlags;  // Command flag set
  750.             Byte Pkey;                // Command PKey
  751.             Char Pdata[31];           // Command PData
  752.             Char Shortd[33];          // Command short description
  753.             Char CmdKey[13];          // Command execution key
  754.         }
  755.         vCommand;
  756.     }
  757.     Menu;
  758. }
  759. MenuRec;
  760.  
  761.  
  762. typedef struct      // Macro list - MACROS.LST
  763. {
  764.     Integer UserN;      // User number of macro owner
  765.     Char Key[4][161];   // Text for each of the macros
  766. }
  767. MacroRec;
  768.  
  769.  
  770. typedef struct      // Single protocols - SPROT.DAT 
  771. {
  772.     Char Key[13];           // Execution key 
  773.     Char Desc[61];          // Description
  774.     Word MinBaud;           // Minimum baud rate to use 
  775.     Word MaxBaud;           // Maximum baud rate to use 
  776.     Byte DSL;               // DSL required 
  777.     Char TempLog[53];       // Temp log path and name 
  778.     Char UlLog[53];         // UL log path and name 
  779.     Char DlLog[53];         // DL log path and name
  780.     Char UlString[71];      // UL string for DOS call 
  781.     Char DlString[71];      // DL string for DOS call 
  782.     Boolean GoodCode;       // Result codes mean good transfer 
  783.     Byte DlCode[6];         // DL error level result codes
  784.     Byte ULcode[6];         // DL error level result codes 
  785. }
  786. SprotocolRec;
  787.  
  788. typedef struct      // Batch protocols - BPROT.DAT 
  789. {
  790.     Char Key[13];           // Execution key
  791.     Char Desc[61];          // Description 
  792.     Word MinBaud;           // Minimum baud rate to use 
  793.     Word MaxBaud;           // Maximum baud rate to use
  794.     Byte DSL;               // DSL required 
  795.     Char UlString[71];      // UL string for DOS call 
  796.     Char DlString[71];      // DL string for DOS call 
  797.     Char UlList[53];        // UL file list file path and name 
  798.     Char DlList[53];        // DL file list file path and name 
  799.     Char TempLog[53];       // Temp log path and name 
  800.     Char UlLog[53];         // UL log path and name 
  801.     Char DlLog[53];         // DL log path and name
  802.     Byte MaxCmdLen;         // Maximum command line length 
  803.     Byte PosFn;             // Position of filename in log
  804.     Byte PosStatus;         // Position of status in log 
  805.     Boolean GoodCode;       // Result codes mean good transfer 
  806.     Char DlCode[6][11];     // DL status result codes 
  807.     Char ULcode[6][11];     // UL status result codes 
  808. }
  809. BprotocolRec;
  810.  
  811.  
  812. typedef struct      // Validation information - VALIDATE.DAT
  813. {
  814.     Char Key;           // Execution key
  815.     Char Desc[161];     // Descrip sent to user after validation
  816.                         // 76 max real length - Rest for color
  817.     Byte SL;            // SL to set on validation 
  818.     Byte DSL;           // DSL to set on validation 
  819.     Word Credit;        // Credit in cents to set on validation 
  820.     Word Points;        // File points to set on validation 
  821.     Word TimeBank;      // Time bank minutes to set on validation 
  822.     ArFlagset Ar;       // AR flags to set on validation 
  823.     FlagSet Flags;      // Special flags to set on validation
  824.     Word UnusedWord;    // Reserved 
  825. }
  826. ValidationRec;
  827.  
  828.  
  829. typedef struct      // Event flags
  830. {
  831.     Bit UnknownEvent : 1;       // 1-1. Unknown
  832.     Bit EventIsExternal : 1;    // 1-2. External/Internal
  833.     Bit EventIsActive : 1;      // 1-3. Active/InActive
  834.     Bit EventIsShell : 1;       // 1-4. Shell/Error
  835.     Bit EventIsMonthly : 1;     // 1-5. Monthly/Daily 
  836.     Bit EventIsPermission : 1;  // 1-6. Permission/Restriction 
  837.     Bit EventIsChat : 1;        // 1-7. Chat Event 
  838.     Bit EventIsSoft : 1;        // 1-8. Soft/Hard 
  839.  
  840.     Bit BaudIsActive : 1;       // 2-1. Baud Rate Flag 
  841.     Bit SLisActive : 1;         // 2-2. SL Flag 
  842.     Bit DSLisActive : 1;        // 2-3. DSL Flag 
  843.     Bit ARisActive : 1;         // 2-4. ARflag required
  844.     Bit InRatioIsActive : 1;    // 2-5. InRatioFlag 
  845.     Bit TimeIsActive : 1;       // 2-6. Time Flag
  846.     Bit SetARisActive : 1;      // 2-7. Set AR flag 
  847.     Bit ClearARisActive : 1;    // 2-8. Clear AR Flag 
  848.  
  849.     Bit uuEvent24 : 1;          // Byte 3 ... 
  850.     Bit uuEvent23 : 1;
  851.     Bit uuEvent22 : 1;
  852.     Bit uuEvent21 : 1;
  853.     Bit uuEvent20 : 1;
  854.     Bit uuEvent19 : 1;
  855.     Bit uuEvent18 : 1;
  856.     Bit uuEvent17 : 1;
  857.  
  858.     Bit uuEvent16 : 1;          // Byte 4 ... 
  859.     Bit uuEvent15 : 1;
  860.     Bit uuEvent14 : 1;
  861.     Bit uuEvent13 : 1;
  862.     Bit uuEvent12 : 1;
  863.     Bit uuEvent11 : 1;
  864.     Bit uuEvent10 : 1;
  865.     Bit uuEvent9 : 1;
  866.  
  867.     Bit uuEvent81 : 1;          // Byte 5 ...
  868.     Bit uuEvent7 : 1;
  869.     Bit uuEvent6 : 1;
  870.     Bit uuEvent5 : 1;
  871.     Bit uuEvent4 : 1;
  872.     Bit uuEvent3 : 1;
  873.     Bit uuEvent2 : 1;
  874.     Bit uuEvent1 : 1;
  875. }
  876. EventType;  // 5 bytes used for 40 flags
  877.  
  878. typedef Byte EventDaysType;     // Set of event days
  879.                                 // (bits 0-6 = Sun..Sat)
  880.  
  881. // The Record Structure of the EventFile
  882.  
  883. typedef struct      // Events - EVENTS.DAT
  884. {
  885.     EventType EventFlags;       // Kinds of Events Supported 
  886.     Byte EventDayOfMonth;       // If monthly, the Day of Month 
  887.     EventDaysType EventDays;    // If Daily, the Days Active 
  888.     Word EventStartTime;        // Start Time in Min from Mid. 
  889.     Word EventFinishTime;       // Finish Time
  890.     Char EventDesc[33];         // Description of the Event 
  891.     Char EventQualMsg[65];      // Msg/Path if he qualifies 
  892.     Char EventNotQualMsg[65];   // Msg/Path if he doesn't 
  893.     Byte EventPreTime;          // Min. B4 event to rest. Call
  894.     Boolean EventOffHook;       // Take phone Offhook ? 
  895.     Char EventLastDate[9];      // Last Date Executed 
  896.     Byte EventErrorLevel;       // For Ext Event ErrorLevel 
  897.     Char EventShellPath[9];     // File for Ext Event Shell 
  898.     Word LoBaud;                // Low baud rate limit 
  899.     Word HiBaud;                // High baud rate limit 
  900.     Byte LoSL;                  // Low SL limit
  901.     Byte HiSL;                  // High SL limit 
  902.     Byte LoDSL;                 // Low DSL limit 
  903.     Byte HiDSL;                 // High DSL limit
  904.     Char ARflagRequired;        // AR flag required 
  905.     Word MaxTimeAllowed;        // Max Time per user this event 
  906.     Char SetARflag;             // AR Flag to Set
  907.     Char ClearARflag;           // AR Flag to Clear
  908.     Byte EventUnused[128];      // Reserved
  909. }
  910. EventRecordType;
  911.  
  912.  
  913. #define MAXMODEMRESULTCODES 45  // Maximum number of modem result codes
  914.  
  915. typedef Byte modemresulttype;   // Modem result type 
  916.  
  917. #define RESULTERROR             0       // Command error 
  918. #define RESULTOK                1       // Command accepted 
  919. #define RESULTRING              2       // Phone ringing 
  920. #define RESULTNOCARRIER         3       // Connect attempt failed 
  921. #define RESULTCONNECT           4       // Connect succcessful 
  922. #define RESULTWAITSCREEN        5       // Go to wait screen
  923. #define RESULTLOCALLOGON        6       // Logcal logon
  924. #define RESULTSHELLBATCH        7       // Shell to batch file 
  925. #define RESULTEXITERRORLEVEL    8       // Exit system with error level 
  926. #define RESULTEXITSYSTEM        9       // Exit system with error level 255 
  927. #define RESULTNODIALTONE        10      // Reserved 
  928. #define RESULTRINGING           11      // Reserved 
  929. #define RESULTBUSY              12      // Reserved 
  930. #define RESULTNOANSWER          13      // Reserved 
  931. #define RESULTVOICE             14      // Reserved 
  932.  
  933. typedef struct
  934. {
  935.     modemresulttype typeofresult;   // Type of result 
  936.     Char result[51];                // Test of result
  937.     Longint connectrate;            // Connect rate modem to modem
  938.     Longint realrate;               // Real rate computer to modem
  939.     Longint controlcode;            // Error level or startup code
  940.     Boolean fullduplex;             // Full duplex operation?
  941.     Boolean errorcorrecting;        // Error correcting modem?
  942.     Byte Unused[8];                 // Reserved
  943. }
  944. resultrec;
  945.  
  946. // Modem string mapping codes:
  947. //
  948. // Char.  Name             Action
  949. // -----  ---------------  ------------------------------
  950. //  ^     Carat            Control code of next character
  951. //  |     Pipe, Split Bar  Carriage return sent
  952. //  `     Accent Mark      1/20th second delay
  953. //  ~     Tilde            1/2 second delay
  954. //  ^-    Carat & Minus    Lower DTR line
  955. //  ^+    Carat & Plus     Raise DTR line
  956.  
  957. typedef struct      // Modem record - MODEM.DAT
  958. {
  959.     Boolean uuunused;           // Unused
  960.     Char modemdescription[65];  // Description on modem
  961.     Byte characterdelay;        // Miliseconds
  962.     Boolean ctsrts;             // Hardware flow control active
  963.     Boolean samering;           // Reserved
  964.     Boolean nocollide;          // Reserved
  965.     Byte numberresults;         // Number of modem result codes defined 
  966.     resultrec result[MAXMODEMRESULTCODES]; // Array of results
  967.     Char preinitialization[65]; // Pre-initialization string 
  968.     Char initialization[65];    // Initialization string 
  969.     Char answer[65];            // Answer string 
  970.     Char busy[65];              // Busy string 
  971.     Char hangupprimary[65];     // Hangup primary string 
  972.     Char hangupsecondary[65];   // Hangup secondard string 
  973.     Char afterhangup[65];       // After hangup string
  974.     Char exitsystem[65];        // Exit system string 
  975.     Char predial[65];           // Reserved 
  976.     Char dialprefix[65];        // Reserved 
  977.     Char dialsuffix[65];        // Reserved
  978.     Longint waitbaud;           // Init modem speed 
  979.     Boolean lockedbaud;         // Is baud rate locked - Not used by T.A.G. 
  980.     Byte ecefficiency;          // Error correcting efficiency
  981.     Byte ncefficiency;          // Normal connect efficiency
  982.     Byte Unused[249];           // Reserved
  983. }
  984. modemrec;
  985.  
  986.  
  987. #define MAXSUBOPS   10      // Maximum number of message section SubOps 
  988.  
  989. typedef Byte NoYesForcedType;   // Message section type 
  990.  
  991. #define NO          0       // Anonymous messages not allowed 
  992. #define YES         1       // Anonymous messages allowed 
  993. #define FORCED      2       // Messages forced anonymous
  994. #define ATUNUSED    3       // Reserved 
  995.  
  996. // Standard Attributes for Messages
  997.  
  998. typedef struct
  999. {
  1000.     Bit Msg_Private : 1;                  // 1  fPrivate,RaPrivate,JamPrivate
  1001.     Bit Msg_Crash : 1;                    // 2  fCrash,Crash,JamCrash
  1002.     Bit Msg_Received : 1;                 // 3  fReceived,Received,JamRead
  1003.     Bit Msg_Sent : 1;                     // 4  fSent,Sent,JamSent
  1004.     Bit Msg_FileAttached : 1;             // 5  fFileAttached,FileAttach,
  1005.                                           //    JamFileAttach
  1006.     Bit Msg_KillSent : 1;                 // 6  fKillSent,KillSent,JamKillSent
  1007.     Bit Msg_Local : 1;                    // 7  fLocal,LocalMessage,JamLocal
  1008.     Bit Msg_ReturnReceiptRequest : 1;     // 8  fReportReceiptRequest,RequestReceipt,
  1009.                                           //    JamReceiptReq 
  1010.     Bit Msg_IsReturnReceipt : 1;          // 9  fIsReturnReceipt,ReturnReceipt
  1011.     Bit Msg_AuditRequest : 1;             // 10 fAuditRequest,AuditRequest 
  1012.  
  1013.     Bit Msg_InTransit : 1;                // 11 fInTransit,JamIntransit
  1014.     Bit Msg_Orphan : 1;                   // 12 fOrphan,JamOrphan 
  1015.     Bit Msg_HoldForPickup : 1;            // 13 fHoldForPickup,JamHold 
  1016.     Bit Msg_Fido_UnusedBit10 : 1;         // 14 fUnusedBit10 
  1017.     Bit Msg_FileRequest : 1;              // 15 fFileRequest,JamFileRequest 
  1018.     Bit Msg_Fido_FileUpdateRequest : 1;   // 16 fFileUpdateRequest 
  1019.  
  1020.     Bit Msg_Deleted : 1;                  // 17 Deleted,JamDeleted 
  1021.     Bit Msg_Ra_NetmailPendingExport : 1;  // 18 NetmailPendingExport
  1022.     Bit Msg_NetMailMessage : 1;           // 19 NetMailMessage,JamTypeNet 
  1023.     Bit Msg_Ra_EchomailPendingExport : 1; // 20 EchomailPendingExport
  1024.     Bit Msg_Ra_UnusedMsgBit7 : 1;         // 21 UnusedMsgBit7 
  1025.     Bit Msg_Ra_UnusedNetBit7 : 1;         // 22 UnusedNetBit7 
  1026.  
  1027.     Bit Msg_Jam_ArchiveSent : 1;          // 23 JamArchiveSent 
  1028.     Bit Msg_Jam_Immediate : 1;            // 24 JamImmediate 
  1029.     Bit Msg_Jam_Direct : 1;               // 25 JamDirect 
  1030.     Bit Msg_Jam_Gate : 1;                 // 26 JamGate 
  1031.     Bit Msg_Jam_ConfirmRequest : 1;       // 27 JamConfirmReq 
  1032.     Bit Msg_Jam_ForcePickUp : 1;          // 28 JamFpu
  1033.     Bit Msg_Jam_TypeLocal : 1;            // 29 JamTypeLocal
  1034.     Bit Msg_Jam_TypeEcho : 1;             // 30 JamTypeEcho 
  1035.     Bit Msg_Jam_NoDisplay : 1;            // 31 JamNoDisp 
  1036.     Bit Msg_Jam_Locked : 1;               // 32 JamLocked 
  1037. }
  1038. MessageAttrFlagSet;     // 4 bytes used for 32 flags 
  1039.  
  1040. typedef Byte MBstyle;   // Message section style flags 
  1041.  
  1042. #define UUMBBSTYLE      0   // Was For Private Mail Board 
  1043. #define LOCALSTYLE      1   // Local
  1044. #define ECHOSTYLE       2   // Echomail 
  1045. #define NETMAILSTYLE    3   // Netmail
  1046. #define GROUPSTYLE      4   // Groupmail 
  1047.  
  1048. typedef Byte MBtype;    // Message section type flags 
  1049.  
  1050. #define UUMBTYPE        0   // Was For Netmail Board 
  1051. #define FIDOFORMAT      1   // Fido 1.Msg Format 
  1052. #define RAFORMAT        2   // Remote Access Format 
  1053. #define JAMFORMAT       3   // Jam Format
  1054.  
  1055. typedef struct      // Message boards - MBOARDS.DAT 
  1056. {
  1057.     Char Name[65];                  // Name of the Board 
  1058.     MBstyle Mstyle;                 // Local/Echo/Netmail 
  1059.     MBtype Mtype;                   // Message Board Type 
  1060.     Byte RaBoard;                   // Board Number if RA/QBBS type 
  1061.     Char Path[65];                  // Directory PathName 
  1062.     Char OriginLine[66];            // Origin Line 
  1063.     ArFlagType AccessAR;            // AR flag Required to Access
  1064.     ArFlagType PostAR;              // AR flag required to Post 
  1065.     Byte AccessSL;                  // Security Level Required to Access
  1066.     Byte PostSL;                    // Security Level Required to Post 
  1067.     Word MsgCount;                  // Count of Msgs on the Board 
  1068.     Word MaxMsgs;                   // Max Number of Messages 
  1069.     Word uuMaxOld;                  // Max Days for Messages
  1070.     Char Password[17];              // Password Required
  1071.     NoYesForcedType Anon;           // Anonymous Type
  1072.     Boolean AllowAnsi;              // Should we allow ANSI
  1073.     NoYesForcedType AllowHandle;    // Should we allow handles
  1074.  
  1075.     // Message Board SubOpts List  - Up to 10 - User Numbers
  1076.     Integer SubOps[MAXSUBOPS+1];    // SubOps - Item 0 = How many
  1077.  
  1078.     Char EchoTag[33];                // Echo Tag for Writing ECHOMAIL.BBS 
  1079.     Boolean UseOtherAddress;         // Use something other than system 
  1080.     Char JamBoard[9];                // JAM 8 character file name 
  1081.     Boolean AskPrivate;              // Ask if in area private message (echos) 
  1082.     Byte Reserved[13];               // Unused 
  1083.     Byte MenuNumber;                 // Default read message number
  1084.                                      //  (if 0, use system default) 
  1085.     Char PrePostFile[9];             // Prepost file name 
  1086.     Byte MinMsgs;                    // Minimum number of messages 
  1087.     Char QuoteStart[71];             // Override starting quote
  1088.     Char QuoteEnd[71];               // Override ending quote 
  1089.     Word QwkConf;                    // QWK Conference Number 
  1090.     Byte GroupNumber;                // What group the board belongs 
  1091.     AddressType OtherAddress;        // The Address to use! 
  1092.     NoYesForcedType RestrictPrivate; // Private mail status 
  1093.     MessageAttrFlagSet DefaultAttr;  // Default message flags
  1094.     Char QwkName[11];                // QWK Conference Name 
  1095.     Boolean Filter7Bit;              // Only allow 7 bit characters 
  1096. }
  1097. MboardType;
  1098.  
  1099.  
  1100. typedef Char LastOnType[8][161];    // Last Few Callers - LASTON.DAT
  1101.  
  1102.  
  1103. #define MAXBITS     1024    // Means a 128 byte bit set, bits 0 to 1023
  1104.  
  1105. typedef Byte bitSetType[MAXBITS / 8];   // Board Flags - ?ZSCAN.DAT
  1106.  
  1107.  
  1108. typedef struct      // Who's online - $WHO.DAT 
  1109. {
  1110.     Boolean Active;
  1111.     Byte Node;              // Node number for this rec     
  1112.     Boolean Available;      // Is he available for anything 
  1113.     Char Uname[37];         // Users Name
  1114.     Char CityState[31];     // City and State               
  1115.     Longint Baud;           // Baud Rate
  1116.     Byte Paging;            // Paging Node Number           
  1117.     Byte InPrivateChat;     // Node in private chat with    
  1118.     Boolean InGroupChat;    // Is he in Group Chat          
  1119.     Char Desc[65];          // Long Description             
  1120. }
  1121. WhoRecType;
  1122.  
  1123.  
  1124. typedef struct      // USERON.BBS file version 1.00
  1125. {
  1126.     Char Name[36];          // User name
  1127.     Byte Line;              // Node number
  1128.     Word Baud;              // Connect rate
  1129.     Char City[26];          // City/State
  1130.     Boolean DoNotDisturb;   // Do not disturb
  1131.     Byte Status;            // Status
  1132. }
  1133. UserOnType100;
  1134.  
  1135.  
  1136. typedef struct      // USERON.BBS file version 1.1x
  1137. {
  1138.     Char Name[36];          // Real name
  1139.     Char Handle[36];        // User name
  1140.     Byte Line;              // Node number
  1141.     Word Baud;              // Connect rate
  1142.     Char City[26];          // City/State
  1143.     Boolean DoNotDisturb;   // Do not disturb
  1144.     Byte Status;            // Status         
  1145.     Byte Attribute;         // Attribute      
  1146. }
  1147. UserOnType11x;
  1148.  
  1149. #ifdef __cplusplus
  1150. }
  1151. #endif
  1152.  
  1153. #endif
  1154.